После завершения этого раздела вы сможете находить, извлекать и просматривать образы контейнеров, а также управлять образами контейнеров, полученными из удаленного реестра контейнеров и сохраненными на сервере.
Утилита Podman использует файл registries.conf в системе хоста для получения сведений о реестрах контейнеров, которые она может использовать.
registries.conf
[user@host ~]$ cat /etc/containers/registries.conf # This is a system-wide configuration file used to # keep track of registries for various container backends. # It adheres to TOML format and does not support recursive # lists of registries. # The default location for this configuration file is /etc/containers/registries.conf. # The only valid categories are: 'registries.search', 'registries.insecure', # and 'registries.block'. [registries.search] registries = ['registry.redhat.io', 'quay.io', 'docker.io'] # If you need to access insecure registries, add the registry's fully-qualified name. # An insecure registry is one that does not have a valid SSL certificate or only does HTTP. [registries.insecure] registries = [] # If you need to block pull access from a registry, uncomment the section below # and add the registries fully-qualified name. # [registries.block] registries = []
[user@host ~]$
cat /etc/containers/registries.conf
Для обычного (непривилегированного) пользователя Podman этот файл хранится в каталоге $HOME/.config/containers. Параметры конфигурации в этом файле переопределяют системные параметры в файле /etc/containers/registries.conf.
$HOME/.config/containers
/etc/containers/registries.conf
Список реестров, в которых Podman может выполнять поиск, настроен в разделе [registries.search] этого файла. Если не указать полностью определенное имя образа в командной строке, Podman будет выполнять поиск в этом разделе в указанном порядке, чтобы определить, как сформировать полный путь к образу.
[registries.search]
Команда podman info отображает сведения о конфигурации для Podman, включая настроенные реестры.
podman info
[user@host ~]$ podman info ...output omitted... insecure registries: registries: [] registries: registries: - registry.redhat.io - quay.io - docker.io ...output omitted...
- registry.redhat.io
- quay.io
- docker.io
Небезопасные реестры указаны в разделе [registries.insecure] файла registries.conf. Если реестр указан как небезопасный, подключения к нему не защищаются с помощью шифрования TLS. Если реестр доступен для поиска и является небезопасным, он может быть указан как в разделе [registries.search], так и в разделе [registries.insecure].
[registries.insecure]
Для реестров контейнеров также можно настроить аутентификацию. Как уже говорилось ранее, необходимо использовать команду podman login для входа в реестр контейнеров, требующий аутентификации.
podman login
Используйте команду podman search, чтобы найти в реестре контейнеров определенный образ контейнера. В следующем примере показано, как найти в реестре контейнеров registry.redhat.io все образы, содержащие имя rhel8:
podman search
registry.redhat.io
rhel8
[user@host ~]$ podman search registry.redhat.io/rhel8 INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED redhat.io registry.redhat.io/openj9/openj9-8-rhel8 OpenJ9 1.8 OpenShift S2I image for Java Appl... 0 redhat.io registry.redhat.io/openjdk/openjdk-8-rhel8 OpenJDK 1.8 Image for Java Applications base... 0 redhat.io registry.redhat.io/openj9/openj9-11-rhel8 OpenJ9 11 OpenShift S2I image for Java Appli... 0 redhat.io registry.redhat.io/openjdk/openjdk-11-rhel8 OpenJDK S2I image for Java Applications on U... 0 redhat.io registry.redhat.io/rhel8/memcached Free and open source, high-performance, dist... 0 redhat.io registry.redhat.io/rhel8/llvm-toolset The LLVM back-end compiler and core librarie... 0 redhat.io registry.redhat.io/rhel8/rust-toolset Rust and Cargo, which is a build system and ... 0 redhat.io registry.redhat.io/rhel8/go-toolset Golang compiler which will replace the curre... 0 ...output omitted...
podman search registry.redhat.io/rhel8
Выполните ту же команду с опцией --no-trunc, чтобы увидеть более длинные описания образов.
--no-trunc
[user@host ~]$ podman search --no-trunc registry.access.redhat.com/rhel8 INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED ...output omitted... redhat.io registry.redhat.io/rhel8/nodejs-10 Node.js 10 available as container is a base platform for building and running various Node.js 10 applications and frameworks. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. 0 redhat.io registry.redhat.io/rhel8/python-36 Python 3.6 available as container is a base platform for building and running various Python 3.6 applications and frameworks. Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. 0 redhat.io registry.redhat.io/rhel8/perl-526 Perl 5.26 available as container is a base platform for building and running various Perl 5.26 applications and frameworks. Perl is a high-level programming language with roots in C, sed, awk and shell scripting. Perl is good at handling processes and files, and is especially good at handling text. 0 ...output omitted...
podman search --no-trunc registry.access.redhat.com/rhel8
В следующей таблице приведены еще некоторые полезные опции команды podman search:
Таблица 13.1. Полезные опции поиска для утилиты Podman
--limit <число>
--filter <filter=значение>
stars=<число>: показывает только образы с указанным или большим количеством звезд.
stars=<число>
is-automated=<true|false>: показывает только образы, созданные автоматически.
is-automated=<true|false>
is-official=<true|false>: показывает только образы, помеченные как официальные.
is-official=<true|false>
--tls-verify <true|false>
true
Red Hat поддерживает репозитории, содержащие сертифицированные образы контейнеров. Найти их можно в веб-интерфейсе по адресу https://access.redhat.com/containers.
Надежные образы из этого репозитория обеспечивают клиентам защиту от известных уязвимостей, которые могут появиться при работе с непроверенными образами. Стандартная команда podman совместима с репозиториями, содержащимися в Red Hat Container Catalog.
podman
Вы можете просмотреть сведения об образе, прежде чем загружать его в систему. С помощью команды skopeo inspect можно отобразить сведения об удаленном образе контейнера в реестре.
skopeo inspect
В приведенном ниже примере команда возвращает сведения об образе контейнера, не извлекая образ в локальную систему.
Команда skopeo inspect может получать сведения об образах различных форматов из различных источников, таких как удаленные реестры и локальные каталоги. Транспортный механизм docker:// указывает утилите skopeo запросить реестр образов контейнеров.
docker://
skopeo
[user@host ~]$ skopeo inspect docker://registry.redhat.io/rhel8/python-36 ...output omitted... "name": "ubi8/python-36", "release": "107", "summary": "Platform for building and running Python 3.6 applications", ...output omitted...
skopeo inspect docker://registry.redhat.io/rhel8/python-36
С помощью команды podman inspect также можно просмотреть локально сохраненные сведения об образе. Эта команда может предоставить больше информации, чем команда skopeo inspect.
podman inspect
Отобразите список локально сохраненных образов.
[user@host ~]$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/generic/rhel7 latest 1d3b6b7d01e4 3 weeks ago 688 MB registry.redhat.io/rhel8/python-36 latest e55cd9a2e0ca 6 weeks ago 811 MB registry.redhat.io/ubi8/ubi latest a1f8c9699786 6 weeks ago 211 MB
podman images
Получите сведения о локально сохраненном образе.
[user@host ~]$ podman inspect registry.redhat.io/rhel8/python-36 ...output omitted... "Config": { "User": "1001", "ExposedPorts": { "8080/tcp": {} ...output omitted... "name": "ubi8/python-36", "release": "107", "summary": "Platform for building and running Python 3.6 applications", ...output omitted...
podman inspect registry.redhat.io/rhel8/python-36
Образы контейнеров являются неизменяемыми. Это означает, что старые образы не обновляются, поэтому для обновления программного обеспечения в контейнере требуется заменить старый образ новым.
Когда обновленный образ становится доступным, издатель изменяет тег latest, чтобы связать его с новым образом. К старому образу по-прежнему можно обращаться, указав тег его версии, и из него можно запускать контейнеры. Вы также можете удалить старый образ, извлечь новый образ и использовать только новый (обновленный) образ для запуска контейнеров.
latest
Например, в образах, предоставляемых компанией Red Hat, применяется многолетний опыт Red Hat в области устранения уязвимостей и дефектов в системе безопасности Red Hat Enterprise Linux и других решений. Команда специалистов Red Hat по безопасности усиливает защиту этих образов и следит за их качеством. При обнаружении новых уязвимостей образы перестраиваются и снова проходят процедуру контроля качества.
Чтобы удалить локально сохраненный образ, используйте команду podman rmi.
podman rmi
registry.redhat.io/rhel8/python-36
Удалите образ registry.redhat.io/rhel8/python-36:latest.
registry.redhat.io/rhel8/python-36:latest
[user@host ~]$ podman rmi registry.redhat.io/rhel8/python-36:latest e55cd9a2e0ca5f0f4e0249404d1abe3a69d4c6ffa5103d0512dd4263374063ad [user@host ~]$
podman rmi registry.redhat.io/rhel8/python-36:latest
Отобразите локально сохраненные образы и убедитесь, что образ был удален.
[user@host ~]$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/generic/rhel7 latest 1d3b6b7d01e4 3 weeks ago 688 MB registry.redhat.io/ubi8/ubi latest a1f8c9699786 6 weeks ago 211 MB
Man-страницы podman-search(1), podman-inspect(1) и skopeo(1)
podman-search
podman-inspect
Дополнительные сведения см. в главе Working with Container Images руководства Red Hat Enterprise Linux 8 Building, Running, and Managing Containers: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/building_running_and_managing_containers/index#working-with-container-images_building-running-and-managing-containers